package br.gov.dataprev.treinamento.ejb.validacao;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import javax.validation.Constraint;
import javax.validation.Payload;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

@Constraint(validatedBy={}) //define q é um validador só por composição
@Target({ElementType.METHOD, ElementType.FIELD}) //onde pode ser aplicado
@Retention(RetentionPolicy.RUNTIME) //padrao
@Pattern(regexp = ".+@.+\\.[a-z]+", message="{curso.cliente.email}")
@Size(min=5, max=30) //validar tamanho
@Documented //padrao
public @interface Email {
	
	//String da mensagem 
	//String message() default "E-mail inválido";
	//ou chave da entrada no arquivo ValidationMessages.properties
	String message() default "{curso.cliente.email}";

    Class<?>[] groups() default {}; //permite separar por grupos
    Class<? extends Payload>[] payload() default {};    //padrao
	
}
